package front_article_api

import (
	"blog_go/global"
	"blog_go/models"
	"blog_go/models/ctype"
	"blog_go/models/res"
	"blog_go/utils"
	"github.com/gin-gonic/gin"
	"time"
)

type ArticleCollMyRsp struct {
	ID            uint      `json:"id"`             // 主键id
	CreatedAt     time.Time `json:"created_at"`     // 创建时间
	Title         string    `json:"title"`          // 文章标题
	Abstract      string    `json:"abstract"`       // 文章简介
	LookCount     uint      `json:"look_count"`     // 浏览量
	CommentCount  uint      `json:"comment_count"`  // 评论量
	DiggCount     uint      `json:"digg_count"`     // 点赞量
	CollectsCount uint      `json:"collects_count"` // 收藏量
	Category      string    `json:"category"`       // 文章分类
	Source        string    `json:"source"`         // 文章来源
	Link          string    `json:"link"`           // 原文链接
	ImageID       uint      `json:"image_id"`       // 文章封面id
	// 冗余字段
	Tags      ctype.Array `json:"tags"`       // 文章标签
	UserID    uint        `json:"user_id"`    // 用户id
	NickName  string      `json:"nick_name"`  // 发布文章的用户昵称
	ImagePath string      `json:"image_path"` // 文章的封面
}

// 我的收藏文章
func (ArticleApi) ArticleCollMy(c *gin.Context) {
	_claims := c.MustGet(utils.Claims)
	claims := _claims.(*utils.CustomClaims)
	var user2Coll models.User2CollModel
	var articleIdList []uint
	global.DB.Where("user_id = ?", claims.UserID).Find(&user2Coll).Select("article_id").Scan(&articleIdList)
	var rspList []ArticleCollMyRsp
	global.DB.Model(models.ArticleModel{}).Find(&rspList)
	res.OkWithList(rspList, int64(len(rspList)), c)
}
